package vfs.obj.entity;

/**
 * A VFSEntity represents an abstract entity in the virtual folder system.
 * 
 * @author Matthew Eavenson <durandal@uga.edu>
 */
public interface VFSEntity {
    
    /**
     * Returns this entity's id.  This is usually 
     * the entity's primary key in the storage medium.
     * 
     * @return this entity's id, as a long integer
     */
    long getId();
    
    /**
     * Sets this entity's id.  This is typically
     * used when restoring an entity from the storage medium.
     * 
     * @param id the id to assign to this entity
     */
    void setId(long id);
    
    /**
     * Indicates whether this entity object is a proxy
     * of a record stored in the storage medium, or whether
     * it has yet to be stored.
     * 
     * @return true if this entity is a proxy, false otherwise
     */
    boolean isProxy();
    
}
